'''
POPULATION
kaenguru
'''

##import matplotlib.pyplot as plt
'''
Import der matplotlib-Bibliothek
'''

class pop:
    '''
    Klasse pop anlegen
    '''
    def __init__(self, population, birthrate, deathrate):
        '''
        Initialfunktion mit Ausgangspopulation, Geburten- und Todesrate
        '''
        self.population = population
        self.birthrate = birthrate
        self.deathrate = deathrate

    def setparam(self, timerange, timestep):
        '''
        Festlegung der gewuenschten Laenge der Simulation, 
        und der Groesse des Zeitschrittes
        '''
        self.timerange = timerange
        self.timestep = timestep
        
    def births(self):
        '''
        Funktion zur Berechnung der Geburten/Jahr
        '''
        return self.population*self.birthrate*self.timestep
        
    def deaths(self):
        '''
        Funktion zur Berechnung der Todesfaelle/Jahr
        '''
        return self.population*self.deathrate*self.timestep
        
    def getpop(self, development):
        '''
        Funktion zur Berechnung und Ausgabe
        der Population zu einem Zeitpunkt (development=0)
        bzw. der Populationsentwicklung bis zu einem Zeitpunkt (development=1)
        '''
##        self.poplist = []
        self.development = development
        k=0
        while k in range(0, int(self.timerange/self.timestep)):
            self.population = self.population + self.births() - self.deaths()
            k = k+1
            year = k*self.timestep
##            self.poplist.append(self.population)    
            if self.development==1:
                print 'Population im Jahr ', year, ': ', self.population

        print 'Population im Jahr ', self.timerange, ': ', self.population

##    def draw(self):
##        for i in range(0, int(self.timerange/self.timestep)):
##            plt.plot([i],[self.poplist[int(i/self.timestep)]],':rs')          
##        plt.ylabel('Population')
##        plt.xlabel('Year')
##        plt.show() 




